<?php

/**
 * analise actions.
 *
 * @package    SCBE
 * @subpackage analise
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class analiseActions extends sfActions
{
  public function executeRecebimento(sfWebRequest $request)
  {
    $this->form = new CadpedidoForm();
    
    $this->recuperaProjetos();
  }
  
  // Executado ao catregar o form pela primeira vez (mÃ©todo na action)
  public function recuperaProjetos()
  {
    $this->listaProjetos = Doctrine_Core::getTable('cadprojetos')->getProjetos();
    
    $this->listaInscricoes = array();
    
    $this->listaDocumentosEnviados = array();
  }
    
  public function executeConsultaDadosInscricaoAjax(sfWebRequest $request)
  {
    $this->dadosCandidato = Doctrine_Core::getTable('Cadpedido')->getInscricao($request->getParameter('idpedido'));
    
    return $this->renderPartial('inscricao', array('candidato' => $this->dadosCandidato));
  }
  
  // Método invocado pelo form via jQuery (método na action)
  public function executeFiltrarProjetoAjax(sfWebRequest $request)
  {
    $this->listaInscricoes = Doctrine_Core::getTable('cadpedido')->getInscricoes($request->getParameter('IdProjetos'));
    
    foreach ($this->listaInscricoes as $chave=>$Inscricoes) { 
        $this->listaDocumentosEnviados = Doctrine_Core::getTable('caddocenviados')->getDocumentosRecebidos($Inscricoes['IdPedido']);
    }
    
    echo ($this->getPartial('listaInscricoesRecebidas'));
    
    exit;
  }
  
  public function executeUpdateAjax(sfWebRequest $request)
  {
    $result = Doctrine_Core::getTable('Cadpedido')->mudarStatus((int)$request->getParameter('idpedido'),(int)$request->getParameter('idstatus'));

    echo $result;

    exit;
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($cadpedido = Doctrine_Core::getTable('cadpedido')->find(array($request->getParameter('idpedido'))), sprintf('Object cadpedido does not exist (%s).', $request->getParameter('idpedido')));
    $this->form = new cadpedidoForm($cadpedido);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
    $this->form = new CadpedidoForm(); 

    utf8_encode($this->recuperaInscricoes());

    return $this->renderPartial('listaInscricoes');
  }
  
  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $cadpedido = $form->save();
      
    //$this->redirect('analise/edit?idpedido='.$cadpedido->getIdpedido());
    }
  }
  
  public function recuperaInscricoes(sfWebRequest $request)
  {
    $this->listaInscricoes = Doctrine_Core::getTable('cadpedido')->getInscricoes($request->getParameter('idprojeto'));
  }
  
  public function executeAbrirDocumento(sfWebRequest $request)
  {
    $idpedido       = $request['idpedido'];

    $iddocumentos   = $request['iddocumentos'];
    
    $fileName = sfConfig::get('app_dir_upload')."{$idpedido}/{$iddocumentos}.pdf";

    if (file_exists($fileName))
    {
        $this->getResponse()->clearHttpHeaders();
        $this->getResponse()->setStatusCode(200);
        $this->getResponse()->setContentType('application/pdf');
        $this->getResponse()->setHttpHeader('Pragma', 'public'); //optional cache header
        $this->getResponse()->setHttpHeader('Expires', 0); //optional cache header
        $this->getResponse()->setHttpHeader('Content-Disposition', "attachment; filename={$iddocumentos}.pdf");
        $this->getResponse()->setHttpHeader('Content-Transfer-Encoding', 'binary');
        $this->getResponse()->setHttpHeader('Content-Length', filesize($fileName));

        return $this->renderText(file_get_contents($fileName));
    } else {
        $this->redirect('analise/recebimento');
    }
    //    $fileName = sfConfig::get('app_dir_upload')."{$idpedido}/{$iddocenviado}.pdf";
  } 
}